import { reqListsItem, reqAddShopCart } from '@/api'
// 封装游客身份模块uuid--->生成一个随机字符串
import { getUUID } from '@/utils'
const state = {
    listInfo: {},
    // 游客的临时身份
    uuid_token: getUUID()
}
const mutations = {
    GETLISTINFO(state, listInfo) {
        state.listInfo = listInfo
    }
}
const actions = {
    // 获取产品信息的action
    async getListInfo({ commit }, skuId) {
        let result = await reqListsItem(skuId)
        if (result.code == 200) {
            commit('GETLISTINFO', result.data)
        }
    },
    // 将产品添加到购物车中 reqAddShopCart
    async addShopCart({ commit }, { skuId, skuNum }) {
        // 加入购物车以后（发请求），前台将参数带给服务器
        // 服务器写入数据成功，不返回数据
        let result = await reqAddShopCart(skuId, skuNum)
            // 当前这个函数 如果执行返回promise
        if (result.code == 200) {
            return "成功"
        } else {
            // 加入购物车失败
            return Promise.reject(new Error('faile'))
        }
    }
}
const getters = {
    categoryView(state) {
        // 比如：state.listInfo初始状态是空对象，空对象的categoryView属性值undefined
        // 当前计算出的 categoryView 属性值至少是个空对象，就不会有报错了
        return state.listInfo.categoryView || {}
    },
    skuInfo(state) {
        return state.listInfo.skuInfo || {}
    },
    spuSaleAttrList(state) {
        return state.listInfo.spuSaleAttrList || []
    }
}
export default {
    state,
    mutations,
    actions,
    getters
}